
#pragma once

#include "atr/iterator.hpp"

namespace atr {

/**
 * @brief Namespace only for internal use of atr library
 * @details Please don't use this namespace outside the atr library. IF you REALLY need to - do it with special care.
 */
namespace __ {

template <template <class ...> class Base, typename ... Types>
struct __iterators
{
    using begin = iterator<Base<>, Base<Types...>>;
    using end   = iterator<Base<Types...>, Base<>>;

// TODO rbegin
// TODO rend
};

} // namespace __
} // namespace atr